package com.fufan.mtsaas.modules.newtech.xjstech.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.fufan.mtsaas.modules.home.bo.response.HomeMyApply;
import com.fufan.mtsaas.modules.newtech.xjstech.bo.request.XjsTechQueryRequest;
import com.fufan.mtsaas.modules.newtech.xjstech.bo.response.XjsTechResponse;
import com.fufan.mtsaas.modules.newtech.xjstech.model.XjsTech;
import org.springframework.stereotype.Repository;

import java.io.Serializable;
import java.util.List;

/**
 * Mapper 接口
 *
 * @author Liby
 * @since 2024-12-16
 */
@Repository
public interface XjsTechDao extends BaseMapper<XjsTech> {

    @Override
    Integer insert(XjsTech entity);

    @Override
    Integer deleteById(Serializable id);

    Integer update(XjsTech entity);

    XjsTech queryById(Serializable id);

    /**
     * 分页查询
     * @param page
     * @param entity
     * @return
     */
    List<XjsTechResponse> selectByPage(Page<XjsTechResponse> page,XjsTechQueryRequest entity);

    /**
     * 分页查询
     * @param page
     * @param entity
     * @return
     */
    List<XjsTechResponse> selectAllByPage(Page<XjsTechResponse> page,XjsTechQueryRequest entity);

    /**
     * 分页查询,待我审批的，我审批过的
     * @param page
     * @param entity
     * @return
     */
    List<XjsTechResponse> selectByProcessAndPage(Page<XjsTechResponse> page,XjsTechQueryRequest entity);

    Integer selectTotal(Integer type);


    /**
     * 分页，我的上报列表
     * @param page
     * @param id
     * @return
     */
    List<HomeMyApply> myApply(Page<HomeMyApply> page, Long id);

    /**
     * 分页，待审批列表
     * @param page
     * @param id
     * @return
     */
    List<HomeMyApply> noAuditList(Page<HomeMyApply> page, Long id);

    /**
     * 分页，已审批列表
     * @param page
     * @param id
     * @return
     */
    List<HomeMyApply> auditList(Page<HomeMyApply> page, Long id);

    /**
     * 统计填报总数
     *
     * @return
     */
    Integer countAllTotal(String year);
}